1. Field of the Invention
The present invention relates generally to microcode updating error handling, and more particularly, to microcode updating either after an incomplete or complete microcode updating procedure.
2. Description of the Prior Art
The prior art method of a microcode update is susceptible to unrecoverable error conditions. As an example, consider the traditional optical disc drive, such as a CD-ROM drive. The CD-ROM drive is often utilized in a Windows computing environment within a typical computer, such as a personal computer, or some similar devices. Periodically the user of such a CD-ROM drive may desire to upgrade the microcode (firmware) that is stored within the CD-ROM drive. Please note that microcode is also commonly referred to as firmware. Microcode is commonly considered a permanent memory that holds the elementary control operations that a computer or other device, such as a CD-ROM drive, must perform for each instruction in its instruction set. The microcode functions as a translation layer between the instructions that, for example, the CD-ROM drive executes, and the electronic level of the computer. The microcode enables the computer architect to add new types of machine instructions more easily without necessitating a redesign of the electronic circuit. It is advantageous for the user to upgrade the microcode that resides within their devices. In this example, it benefits the user to upgrade the microcode of the CD-ROM drive, however, there is risk involved during the microcode upgrade process. For example, a sudden loss of electrical power occurring simultaneously as the microcode of the CD-ROM is being updated, will cause the upgrade flow control program of the conventional prior art device, including for example the CD-ROM drive, to be lost thereby unintentionally and abruptly ending the updating process. It is a disadvantage of the conventional CD-ROM drive that the microcode update flow control program is executed in volatile memory, such as SDRAM, therefore a power loss will cause the SDRAM to lose its contents. In other words, the microcode of the CD-ROM drive becomes incomplete in the event of a sudden power loss and the microcode update flow control program of the original microcode is lost due to the unexpected updating interruption. This is especially precarious because the failed microcode update for the CD-ROM drive will prevent the desired microcode from being re-written into the CD-ROM drive for replacing the currently used incomplete microcode. In this example, an unpredictable interruption of the microcode updating process of the conventional CD-ROM drive of a typical Windows computer results in the CD-ROM drive having unusable and corrupted microcode, and the Windows computer being unusable and unable to boot-up, access the CD-ROM drive, or load the Windows environment (i.e., the Windows operating system). This is obviously a tremendous inconvenience to the user. In addition, the user will often delay or avoid entirely a microcode upgrade/update even when said upgrade/update has been recommended for installation by the appropriate manufacturer or vendor. This practice is a result of users experiencing failed microcode upgrades/updates that have rendered their devices, the CD-ROM drive, computer, or other device, unusable. Microcode upgrades and updates that are otherwise critical to the correct operation of the particular device are purposely ignored. Therefore, it is apparent that improved microcode update processes and devices are needed wherein said devices and processes are not affected by error events such as a sudden loss of electrical power or the unexpected rebooting of the computer's Windows environment (i.e., the Windows operating system) during a microcode updating process.